package models

// 公共操作

import (
	"os"
	"time"

	"go.uber.org/zap"
	"gorm.io/gorm"

	"fiber/global"
)

// 以下字段都需要的话 也可使用gorm.Model

// 自增ID主键
type ID struct {
	ID uint `json:"id" gorm:"primaryKey"`
}

// 创建、更新时间
type Timestamps struct {
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

// 软删除
type SoftDeletes struct {
	DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index"`
}

// 数据库表初始化
func InitMySqlTables(db *gorm.DB) {
	err := db.AutoMigrate(
		User{}, // 用户表
	)
	if err != nil {
		global.Log.Error("migrate table failed", zap.Any("err", err))
		os.Exit(0)
	}
}
